package dao;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.criteria.CriteriaQuery;

import model.Usuario;
import util.JPAUtil;



public class UsuarioDAO {
	
	public void inserir(Usuario usuario){
		
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(usuario);
		tx.commit();
		em.clear();
		
	}
	
	public void update(Usuario usuario){
		
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(usuario);
		tx.commit();
		em.clear();
	}
	
	public void delete(Usuario usuario){
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.remove(usuario);
		tx.commit();
		em.clear();
	}
	
	public List<Usuario> selectAll(){
		EntityManager em = JPAUtil.getEntityManager();
		CriteriaQuery<Usuario> query = em.getCriteriaBuilder().createQuery(Usuario.class);
		query.select(query.from(Usuario.class));
		
		List<Usuario> lista = em.createQuery(query).getResultList();
		em.close();
		
		return lista;
	}

}
